Support federated service:check/push with local schema file #1489
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now, the only way to
push
/check
a federated service is to use the--endpoint
option and query the_service { sdl }
. This is difficult to do in CI workflows because of other dependencies services may need in order to start up.This PR adds the ability to specify a
--localSchemaFile
to use as a source of thesdl
instead of querying a running service.Constraints
localSchemaFile
must be a graphql file. The file used is interpreted as plain text and it passed directly to the check/push mutation, so anything file extensions other thangraphql
,gql
, andgraphqls
will be errored.Other
sdl
is now the only thing that's being queried from running services instead of theurl
andname
, thefederation-info
providers aren't needed. The logic for loading the sdl can fit inside the existing schema providers.introspection
schema provider toendpoint
since now there's more being fetched from an endpoint than the introspection query (_service { sdl }
)usage
For the CLI, you can now use the
--localSchemaFile
flag to point to sdlYou can also add the file path in the config file to avoid using the flag
Along with client projects, the
localSchemaFile
also supports multiple valuesIn the apollo config file:
as a CLI flag:
--localSchemaFile=schema.graphql,schema2.graphql
TODO:
*Make sure changelog entries note which project(s) has been affected. See older entries for examples on what this looks like.